安定版リリース日: 2025 年 5 月 27 日
特に明記しない限り、以下の変更は Android、ChromeOS、Linux、macOS、Windows 版 Chrome 137 Stable チャンネル リリースに適用されます。
CSS と UI
CSS if()
関数
CSS の if()
関数を使用すると、条件付き値を簡潔に表現できます。セミコロンで区切られた一連の条件値ペアを指定します。この関数は、各条件を順番に評価し、最初の true 条件に関連付けられた値を返します。条件のいずれも true と評価されない場合、関数は空のトークン ストリームを返します。これにより、複雑な条件ロジックをシンプルかつ簡潔に表現できます。
例:
div {
color: var(--color);
background-color: if(style(--color: white): black; else: white);
}
.dark {
--color: black;
}
.light {
--color: white;
}
<div class="dark">dark</div>
<div class="light">light</div>
トラッキング バグ #346977961 | ChromeStatus.com のエントリ | 仕様
CSS reading-flow
、reading-order
プロパティ
reading-flow
CSS プロパティは、フレックス、グリッド、ブロック レイアウト内の要素がユーザー補助ツールに公開され、Tab キーによるフォーカス ナビゲーションを使用してフォーカスされる順序を制御します。
reading-order
CSS プロパティを使用すると、作成者は読み上げフロー コンテナ内の順序を手動でオーバーライドできます。これは整数で、デフォルト値は 0
です。
これらのプロパティの詳細については、論理的な連続フォーカス ナビゲーションに CSS 読み取りフローを利用するをご覧ください。また、例を試すこともできます。
バグのトラッキング #40932006 | ChromeStatus.com のエントリ | 仕様
筆記体での文字間隔を無視する
この機能では、仕様に沿ってデベロッパーが指定した、手書き文字の文字間隔の設定を無視するロジックを追加します。これにより、文字間隔が単語の構造を乱さないようにし、手書き文字を使用するユーザーのユーザー エクスペリエンスを改善することを目的としています。
この機能により、フォントには高度なタイポグラフィ機能がなくても、筆記体は読みやすく、適切な間隔で表示されます。
Chromium でこの機能が適用されるスクリプトは、アラビア語、ハニフィー語、ロヒンギャ語、マンダ語、モンゴル語、N'Ko、Phags Pa、シリア語です。これらのスクリプトは、仕様に基づいて筆記体と見なされます。
バグのトラッキング #40618336 | ChromeStatus.com のエントリ | 仕様
Selection API getComposedRanges
と direction
この機能では、Selection API の 2 つの新しい API メソッドが提供されます。
Selection.direction
: 選択範囲の方向をnone
、forward
、backward
のいずれかとして返します。Selection.getComposedRanges()
: 0 または 1 のリストが返されます。コンポーズStaticRange
合成された StaticRange
はシャドウ境界を越えることができますが、通常の Range
は越えられません。
次に例を示します。
const range = getSelection().getComposedRanges({ shadowRoots: [root] });
選択範囲が、shadowRoots
リストに指定されていないシャドウルート境界を越える場合、StaticRange
のエンドポイントは、そのツリー外側に再スコープされます。これにより、Chrome で不明なシャドウ ツリーが公開されなくなります。
バグのトラッキング #40286116 | ChromeStatus.com のエントリ | 仕様
offset-path: shape()
を支援する
offset-path: shape()
をサポートし、レスポンシブ シェイプを使用してアニメーション パスを設定できるようにしました。
バグのトラッキング #389713717 | ChromeStatus.com のエントリ | 仕様
SVGSVGElement
の transform
属性をサポート
この機能により、transform
属性を使用して、拡大 / 縮小、回転、移動、スキューなどの変換プロパティを <svg>
ルート要素に直接適用できます。この機能強化により、SVG 座標系全体またはそのコンテンツ全体を操作できるため、動的でレスポンシブなインタラクティブなベクター グラフィックをより柔軟に作成できます。この属性をサポートすることで、追加のラッパー要素や複雑な CSS の回避策を必要とせずに <svg>
要素を変換できるため、スケーラブルでアニメーション化されたウェブ グラフィックの作成プロセスを効率化できます。
バグのトラッキング #40313130 | ChromeStatus.com のエントリ | 仕様
accent-color
プロパティのシステム アクセント カラー
これにより、フォーム要素にオペレーティング システムのアクセント カラーを使用できます。accent-color
CSS プロパティを使用すると、チェックボックス、ラジオボタン、進行状況バーなどのフォーム要素に、ユーザーのオペレーティング システムで定義されたアクセント カラーが自動的に適用されます。これは 2021 年から macOS でサポートされており、Windows と ChromeOS でもサポートされるようになりました。
バグのトラッキング #40764875 | ChromeStatus.com のエントリ | 仕様
フラグメントを省略して、<use>
が外部ドキュメントのルート要素を参照できるようにします。
この機能は、参照要件を緩和することで、SVG <use>
要素を効率化します。Chrome 137 より前は、SVG ドキュメント内でフラグメントを明示的に参照する必要がありました。フラグメント ID が指定されていない場合、<use>
はターゲットを解決できず、レンダリングも参照も行われません。
たとえば、フラグメント ID を使用して外部ファイルを参照する <use>
要素は次のようになります。
<svg>
<use xlink:href="myshape.svg#icon"></use>
</svg>
この例では、#icon
は myshape.svg
内の id="icon"
を持つ要素を指すフラグメント ID です。
フラグメント識別子なし:
<svg>
<use xlink:href="myshape.svg"></use>
</svg>
この機能を使用すると、フラグメントを省略するか、外部 svg ファイル名を指定するだけで、ルート要素が自動的に参照されるため、ID をルートに割り当てるためだけに参照ドキュメントを変更する必要がなくなります。この機能強化により、この手動編集プロセスが簡素化され、効率が向上します。
バグのトラッキング #40362369 | ChromeStatus.com のエントリ | 仕様
キャンバスの浮動小数点数カラータイプ
CanvasRenderingContext2D
、OffscreenCanvasRenderingContext2D
、ImageData
で浮動小数点ピクセル形式(8 ビット固定小数点形式ではなく)を使用できるようになりました。
これは、高精度アプリケーション(医療画像化など)、ハイ ダイナミック レンジ コンテンツ、リニア作業用カラースペースに必要です。
バグのトラッキング #40245602 | ChromeStatus.com のエントリ | 仕様
view-transition-name: match-element
match-element
値は、要素の ID に基づいて一意の ID を生成し、この要素の名前を変更します。これは、要素が移動され、ビュー遷移でアニメーション化されるシングルページ アプリのケースで使用されます。
バグのトラッキング #365997248 | ChromeStatus.com のエントリ | 仕様
お支払い
payment
WebAuthn 認証情報の作成時にスローされるエラータイプを調整: SecurityError
を NotAllowedError
に変更
payment
認証情報の WebAuthn 認証情報の作成時にスローされるエラータイプを修正しました。過去の仕様が一致しないため、ユーザーの有効化なしでクロスオリジン iframe に payment
認証情報を作成すると、支払い以外の認証情報でスローされる NotAllowedError
ではなく、SecurityError
がスローされます。
これは互換性を破る変更ですが、ニッチな変更です。以前はスローされたエラーのタイプ(e instanceof SecurityError
など)を検出していたコードが影響を受けます。認証情報の作成中にエラーを一般に処理するコード(catch (e)
など)は、引き続き正しく機能します。
バグのトラッキング #41484826 | ChromeStatus.com のエントリ | 仕様
ウェブ API
blob URL のパーティショニング: 取得/ナビゲーション
ストレージ パーティションの延長として、Chrome では、ストレージキー(トップレベル サイト、フレーム オリジン、has-cross-site-ancestor ブール値)による Blob URL アクセスのパーティショニングを実装します。ただし、フレーム オリジンのみでパーティショニングされるトップレベル ナビゲーションを除きます。この動作は、現在 Firefox と Safari の両方で実装されている動作と類似しており、ストレージ パーティションの一部として、blob URL を他のストレージ API で使用されるパーティショニング スキームに合わせた形で使用します。また、Chrome では、レンダラによって開始された Blob URL へのトップレベル ナビゲーションに対して noopener が適用されます。この場合、対応するサイトは、ナビゲーションを実行するトップレベル サイトのクロスサイトです。これにより、Chrome の動作と Safari の類似する動作との間の整合性が保たれるようになり、関連する仕様にもこれらの変更が反映されるようになります。
バグのトラッキング #40057646 | ChromeStatus.com のエントリ
応答しないウェブページのクラッシュ レポートのコールスタック
この機能は、JavaScript コードが無限ループを実行しているなどの非常に長い計算が原因でウェブページが応答しなくなったときに、JavaScript 呼び出しスタックをキャプチャします。これにより、デベロッパーは応答しない原因を特定し、簡単に修正できます。理由が「応答なし」の場合、JavaScript 呼び出しスタックがクラッシュ レポート API に含まれます。
トラッキング バグ #1445539 | ChromeStatus.com のエントリ | 仕様
Document-Isolation-Policy
Document-Isolation-Policy
を使用すると、ドキュメントで crossOriginIsolation
を有効にできます。COOP や COEP をデプロイする必要はなく、ページの crossOriginIsolation
ステータスも関係ありません。このポリシーはプロセス分離によってサポートされています。また、ドキュメントの CORS 以外のクロスオリジン サブリソースは、認証情報なしで読み込まれるか、CORP ヘッダーが必要になります。
バグのトラッキング #333029146 | ChromeStatus.com のエントリ | 仕様
ウェブ暗号の Ed25519
この機能により、Web Cryptography API で Curve25519
アルゴリズム(署名アルゴリズム Ed25519
)のサポートが追加されます。
バグのトラッキング用番号: 1370697 | ChromeStatus.com のエントリ | 仕様
HSTS によるトラッキング防止
HSTS キャッシュを使用したサードパーティによるユーザー トラッキングを軽減します。
この機能は、トップレベル ナビゲーションの HSTS アップグレードのみを許可し、サブリソース リクエストの HSTS アップグレードはブロックします。これにより、サードパーティのサイトが HSTS キャッシュを使用してウェブ上のユーザーをトラッキングできなくなります。
トラッキング バグ #40725781 | ChromeStatus.com のエントリ
WebAssembly
JavaScript Promise の統合
JavaScript Promise Integration(JSPI)は、WebAssembly アプリケーションを JavaScript Promise と統合できる API です。
これにより、WebAssembly プログラムが Promise の生成元として機能し、Promise を含む API とやり取りできるようになります。
特に、アプリケーションが JSPI を使用して Promise を含む(JavaScript)API を呼び出すと、WebAssembly コードが中断され、WebAssembly プログラムの元の呼び出し元に、WebAssembly プログラムが最終的に完了したときに満たされる Promise が渡されます。
WebAssembly ブランチ ヒント
特定の分岐命令が特定のパスをたどる可能性が高いことをエンジンに通知することで、コンパイルされた WebAssembly コードのパフォーマンスを向上させます。
これにより、エンジンはコード レイアウト(命令キャッシュ ヒットの改善)とレジスタ割り当てについてより適切な判断を行うことができます。
WebGPU
GPUTextureView
(externalTexture
バインディング用)
GPUBindGroup
の作成時に、externalTexture
バインディングに GPUTextureView
を使用できるようになりました。
トラッキング バグ #398752857 | ChromeStatus.com のエントリ | 仕様
copyBufferToBuffer
のオーバーロード
GPUCommandEncoder
copyBufferToBuffer()
メソッドに、オフセットとサイズのパラメータ(省略可)を指定できる新しいオーバーロードを使用してバッファ全体をコピーする簡単な方法が追加されました。
Enterprise
IP アドレスのロギングとレポート
Chrome Enterprise では、ローカル IP アドレスとリモート IP アドレスを収集して報告し、それらをセキュリティ調査ログ(SIT)に送信することで、セキュリティ モニタリングとインシデント対応の機能を強化しています。また、オプションで、管理者が Chrome Enterprise レポート コネクタを介して、自社およびサードパーティの SIEM プロバイダに IP アドレスを送信できるようになります。
これは Chrome Enterprise Core をご利用のお客様が利用できます。
オリジン トライアル
フルフレームレートのレンダリング ブロック属性
ブロック属性に新しいレンダリング ブロック トークン full-frame-rate
を追加しました。レンダラが full-frame-rate
トークンでブロックされると、レンダラは低いフレームレートで動作し、読み込みに多くのリソースを予約します。
バグのトラッキング #397832388 | ChromeStatus.com のエントリ
レンダリングされていない iframe でメディアの再生を一時停止する
media-playback-while-not-rendered
権限ポリシーを追加して、埋め込みウェブサイトがレンダリングされていない埋め込み iframe のメディア再生を一時停止できるようにします。つまり、display
プロパティが none
に設定されている iframe のメディア再生を一時停止できるようにします。これにより、デベロッパーはよりユーザー フレンドリーなエクスペリエンスを構築できるようになります。また、ユーザーには表示されないコンテンツの再生をブラウザに任せることで、パフォーマンスも向上します。
オリジン トライアル | トラッキング バグ #351354996 | ChromeStatus.com のエントリ
Rewriter API
Rewriter API は、オンデバイスの AI 言語モデルを基に、リクエストされた方法で入力テキストを変換して言い換えます。デベロッパーは、この API を使用して、文字数の制限に収まるようにテキスト内の冗長性を削除したり、対象読者に合うようにメッセージを言い換えたり、有害な表現が使用されているメッセージが見つかった場合により建設的なものにしたり、投稿や記事を言い換えてよりシンプルな単語やコンセプトを使用したりできます。
オリジン トライアル | バグのトラッキング #358214322 | ChromeStatus.com のエントリ | 仕様
Writer API
Writer API は、デバイス上の AI 言語モデルを基に、文章作成タスクのプロンプトから新しい文章を作成するために使用できます。デベロッパーは、この API を使用して、構造化データのテキストによる説明を生成したり、レビューや商品説明に基づいて商品に関する投稿を作成したり、長所と短所のリストから詳細ビューを拡張したりできます。
オリジン トライアル | トラッキング バグ #357967382 | ChromeStatus.com のエントリ | 仕様